System and method for storage operation access security

ABSTRACT

A method and system for controlling access to stored data is provided. The storage access control system leverages a preexisting security infrastructure of a system to inform the proper access control that should be applied to data stored outside of its original location, such as a data backup. The storage access control system may place similar access control restrictions on the backup files that existed on the original files. In this way, the backed up data is given similar protection as that of the original data.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.11/694,784 (Attorney Docket No. 60692-8042.US00) entitled “SYSTEM ANDMETHOD FOR STORAGE OPERATION ACCESS SECURITY” and filed on Mar. 30,2007, which claims priority to U.S. Provisional Application No.60/852,584 (Attorney Docket No. 60692-8047.US00) entitled “METHOD ANDSYSTEM FOR COLLABORATIVE SEARCHING,” and filed on Oct. 17, 2006, each ofwhich are hereby incorporated by reference.

BACKGROUND

Traditional security systems operate on the principal of limiting accessto data. Each user of the system is generally identified with a username, and access rights are assigned to each user. For example, usersmay be permitted or prevented from accessing certain files or adding newhardware to a computer system. Users may also be assigned to groupswhere each member of the group is given common access rights. Often agreat amount of administrative effort has been put into creating usersand groups and assigning them appropriate access rights in a traditionalcomputer security system. For example, Microsoft Windows provides ActiveDirectory for creating users and groups and assigning access toresources throughout a computer network. File systems also often provideaccess control. For example, the NT File System (NTFS) provides folderand file access based on user and group identifiers and the type ofaccess requested such as read, write, execute, and other operations. Anorganization may have an extensive scheme of groups and access rights.For example, there may be a group of accounting department users thathave different rights than engineering department users. Theorganization may also have identified certain users as administratorsthat have additional rights to administer the system.

Computer systems contain large amounts of personal data, such asfinancial data, names, addresses, telephone numbers, bank accountinformation, photographs and much more. Corporate computer systems oftencontain confidential information, such as trade secrets, manufacturingprocesses, business strategy, and so on. With the increased reliance oncomputer systems to store critical information, the importance ofprotecting this data against loss has grown. For example, traditionalstorage management systems receive an identification of a file locationof an original file and then create one or more secondary copies, suchas backup files, containing the contents of the original file. Thesesecondary copies can then later be used to restore the original datashould anything happen to the original data. Secondary copies of dataare often stored in a publicly accessible location for quick restorationof data in the event of a disaster or other data loss event. Forexample, backup files may be stored on a widely accessible server, andtapes and other media used for storing backup files may be physicallyaccessible to many users.

Backed up data may contain sensitive information that is more widelyaccessible than the original data. Backing up data often removes thedata from the well-planned security environment in which it wasoriginally stored. Even though a system administrator may have gone togreat lengths to properly limit access to data throughout a network,once the data is stored as one or more secondary copies it is often moreaccessible than originally intended. For example, the CEO of a companymay have many sensitive files on a computer system that only he canaccess, but if that computer system is backed up, then the backup filesmay allow unauthorized users to have access to data that they would notnormally be able to access. In addition, some systems provide searchesbased on backup data in which the backup data is indexed. Indexedcontent does not have the protections imposed on the original files.

There is a need for a system that overcomes the above problems, as wellas providing additional benefits.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that illustrates components of a storageaccess control system in one embodiment.

FIG. 2 is a flow diagram that illustrates processing of the system toapply preexisting security to data objects in one embodiment.

FIG. 3 is a flow diagram that illustrates processing of the system toperform a secure search in one embodiment.

FIG. 4 is a flow diagram that illustrates processing of the system tomigrate users from a preexisting security infrastructure to a storagecomponent security infrastructure in one embodiment.

FIG. 5 is a data structure diagram that illustrates storing of accesscontrol information with storage data in one embodiment.

In the drawings, the same reference numbers and acronyms identifyelements or acts with the same or similar functionality for ease ofunderstanding and convenience. To easily identify the discussion of anyparticular element or act, the most significant digit or digits in areference number refer to the Figure number in which that element isfirst introduced (e.g., element 1104 is first introduced and discussedwith respect to FIG. 11).

The headings provided herein are for convenience only and do notnecessarily affect the scope or meaning of the claimed invention.

DETAILED DESCRIPTION Overview

A method and system for controlling access to stored data describedbelow leverages a preexisting security infrastructure to inform properaccess control that should be applied to data stored outside of itsoriginal location, such as a data backup. In one embodiment, the storageaccess control system receives a request to perform a storage operationthat makes data at a source location available at a destinationlocation. For example, the request may indicate that data stored on onecomputer should be copied and stored on a second computer. A storageoperation may include many types of operations such as backup,migration, replication, snapshot, hierarchical storage management (HSM),and so on. For example, the storage operation may be a request to make asnapshot copy of data at the source location. The source location maycontain electronic information such as file system data objects,application data objects, or other types of storage data objects. Uponreceiving the request, the storage access control system queries thesource or other location for access control information. For example, ifthe data includes one or more files, then the storage access controlsystem may examine the file system to determine what access controlscheme is currently in place for the data. The file system may containaccess information that identifies the users and groups that have accessto the data. One manner in which the access information may beassociated with the data is by storing the access information along withthe file. Then, the storage access control system applies the accesscontrol information to the data stored at the destination location. Forexample, the storage access control system may associate the accesscontrol information with the data stored at the destination location ina different manner, such as by storing metadata describing the accesscontrol information in a content indexing system. In the example ofbacking up files, the storage access control system may place similaraccess control restrictions on the backup files that existed on theoriginal files. In this way, the backed up data is given similarprotection as that of the original data.

The invention will now be described with respect to various embodiments.The following description provides specific details for a thoroughunderstanding of, and enabling description for, these embodiments of theinvention. However, one skilled in the art will understand that theinvention may be practiced without these details. In other instances,well-known structures and functions have not been shown or described indetail to avoid unnecessarily obscuring the description of theembodiments of the invention.

The terminology used in the description presented below is intended tobe interpreted in its broadest reasonable manner, even though it isbeing used in conjunction with a detailed description of certainspecific embodiments of the invention. Certain terms may even beemphasized below; however, any terminology intended to be interpreted inany restricted manner will be overtly and specifically defined as suchin this Detailed Description section.

Improving Security with ACLs and Active Directory

In some embodiments, the storage access control system determines theaccess control information stored by the preexisting securityinfrastructure based on an offline or secondary copy of the data. Anoffline copy can be a backup, snapshot, or other copy of the data thatis not actively being used by a live data server or other computerssystem. By using a secondary copy, the storage access control system canavoid interrupting user access to the live data by not consumingadditional resources on the server or other computer system storing thelive copy of the data.

When a live or production copy of the source data is used to create asecondary copy, the preexisting security information associated with thedata may also be associated with the secondary copy. For example, if thesource data is a file, then the security information associated with thefile may be captured when the secondary copy is created and stored withthe file or in another location that is associated with the secondarycopy. For example, many file systems contain hierarchical securityschemes such that access control information applied to a parent filesystem object (e.g., a folder) is applied to each of the child filesystem objects (e.g., files in the folder). The storage access controlsystem captures this information so that the access control informationapplied to source data can also be applied to secondary copies of thesource data. For example, if the user later performs a search and thestorage access control system searches offline copies of data, then thestorage access control system can ensure that the user has similaraccess (both permitting allowed operations and denying excludedoperations) to the offline data that the user had to the original livedata from which the offline data was created. For example, if the usercould not browse particular source data, then the storage access controlsystem may exclude references to secondary copies of the source datafrom search results. Similarly, if the user could browse and read a filebut not write to it, then the storage access control system may permitthe user to receive the file in search results, read from the file, butnot make modifications to the file.

In some embodiments, the storage access control system stores accesscontrol information as metadata that identifies users or groupsauthorized to perform storage operations. For example, backup files maycontain metadata that lists the users that can access the data containedin the backup file. Alternatively or additionally, backup data that isindexed for searching may be associated with metadata stored with theindex to apply access control information in response to search queries.For example, a user that does not have permission to access a particularbackup data object may be prevented from receiving that data object in alist of results from a search query, even though the backup data objectmay satisfy the search criteria. Alternatively or additionally, the usermay be able to receive the data object in a list of search results, butnot be able to open or view the data object. A data object could be afile system object (e.g., a file or folder), an application data object(e.g., an email mailbox, word processing document, etc.), or otherobject containing data.

In some embodiments, the storage access control system stores accesscontrol information as an Access Control List (ACL) containing AccessControl Entries (ACE). The ACL contains a list of users and/or groupsthat are allowed to access a data object, type of data object, orresource containing a data object. Each ACE may specify a user, group,or other entity that has access to the data object associated with theACL. In some embodiments, an ACL may contain a list of users or groupsthat are specifically denied access to a data object. In this way,administrators can apply access control rights in the manner that ismost logical for their organization. For example, if everyone in theaccounting department except User A should have access to a particulardata object, then an administrator may create an ACL associated with thedata object containing an ACE that allows access to the accountingdepartment group, and another ACE that denies access to User A. The ACLmay also contain Boolean operators that describe combinations ofpermissions and users that should be applied to a data object.

When a user, system, or process attempts to access a data object, suchas to perform a storage operation on the data object, the storage accesscontrol system accesses the ACL and associated ACEs related to the dataobject to determine whether the user has the appropriate access toperform the operation on the data object. If the user has theappropriate access, then permission to perform the operation is granted,and the operation proceeds. If the user does not have the appropriateaccess, then the storage access control system denies permission toperform the operation, and an error or other information may be conveyedto the user indicating that the operation was not performed.

In some embodiments, the storage access control system further protectssecondary copies of data, such as by encrypting the data. This may beuseful when the backup data is expected to be stored offsite, such as bya public remote backup provider. The data may be encrypted such that itcan only be decrypted by those users or groups with access to theoriginal data. For example, the data may be encrypted using a key thatis associated with a particular group of users that has access to thedata. Users that are not part of the group will not know or beassociated with the key and therefore will not be able to decrypt thedata, while users within the group will know the key and can decrypt andaccess the data.

In some embodiments, the storage access control system assigns accessrights based on the content of or metadata associated with a dataobject, such as by querying a content or metadata indexing system. Forexample, some users may be denied access to files that contain the word“confidential.” An access group of company executives can be grantedexclusive access to files that contain the term “board of directors.”The system may apply such content filtering to the data directly, or thesystem can filter searches for data objects such that the search resultsdo not contain content to which the searching user has not been grantedthe right to access.

Active Directory Integration for User Creation

In some embodiments, the storage access control system provides aseparate security infrastructure, but recognizes users and groupscreated in the preexisting security infrastructure. For example, serversystems running Microsoft Windows often use Active Directory or othersystems to create users and groups and assign access rights to thoseusers and groups. The storage access control system may allow creating aseparate set of users and groups that are assigned various storageoperation rights. However, rather than recreating each user from theActive Directory in the storage access control system, the storageaccess control system may allow adding an Active Directory user or groupto a storage access control system group. For example, when an ActiveDirectory user is added to a storage access control system group, thestorage access control system may query the Active Directory todetermine information about the user and the access rights associatedwith the user. Thus, it is not necessary to give storage systemoperators permissions to create new storage access control system users,and it is not necessary to duplicate the users in both security systems.Similarly, other preexisting security infrastructures could be used withthe storage access control system.

The storage access control system may also retrieve other informationfrom the preexisting security system. For example, the preexistingsecurity system may maintain a list of computers associated with aparticular user, and the storage access control system can grant theuser access, for example, to backup computers in that list. Thepreexisting security system may contain other supplemental information,such as the user's email address that the storage access control systemmay use, for example, to email the user if a storage operation fails.The integration and connection of the storage access control system withthe preexisting security system allows the storage access control systemto provide a system administrator with additional value in theadministrator's investment of time and resources in the preexistingsecurity system and reduces the need for a redundant investment of timeand resources in another security system.

Security-Based Queries and Access Filtering

In some embodiments, the storage access control system provides anindexing and search facility that allows searching based on keywordswithin backed up documents. The storage access control system storesaccess control information for indexed files and applies access controlto search queries initiated by a user, system, or process. For example,an administrator may be able to search backup data for all users,whereas another user may only be able to search her own backup data.Likewise, an executive of a company may be able to search for and viewcontent containing sensitive business plans or trade secrets, but otheremployees may not.

Such access control may be applied using ACLs and Active Directorygroups as described above. For example, a user with an ACL on anoriginal file that allows the user to view the file can also view searchresults containing the file, whereas a user without access to theoriginal file cannot view the file by opening it from a list of searchresults. Similarly, a user that is a member of an Active Directory groupthat has access to a file will have access to view search resultscontaining the file. In this way, an organization can leverage theinvestment in an existing security infrastructure to provide similarsecurity for content accessible via a search facility.

Figures

Unless described otherwise below, aspects of the invention may bepracticed with conventional systems. Thus, the construction andoperation of the various blocks shown in FIG. 1 may be of conventionaldesign, and need not be described in further detail herein to make anduse the invention, because such blocks will be understood by thoseskilled in the relevant art. One skilled in the relevant art can readilymake any modifications necessary to the blocks in FIG. 1 (or otherembodiments or Figures) based on the detailed description providedherein.

FIG. 1 is a block diagram that illustrates components of the storageaccess control system in one embodiment. The storage access controlsystem 100 contains a receive storage request component 110, a querypreexisting security component 120, a set destination security component130, an index storage data component 140, a search storage datacomponent 150, a provide search results component 160, and an applycontent security component 170. The receive storage request component110 handles incoming storage requests. For example, a storage requestmay include a request to copy data from a source location to adestination location. The query preexisting security component 120queries access control information from an existing security providerexternal to the storage access control system. For example, files storedin an NTFS file system contain or are otherwise associated with accesscontrol information that specifies the users that are allowed to accessthe file.

The set destination security component 130 applies access controlinformation identified from an external security provider to datamanaged by the storage access control system. For example, during abackup operation, access control information from a source file isassociated with secondary copies that store information from the sourcefile, such that a user has similar access rights to the source file andthe backup data. The index storage data component 140 creates an indexof storage data managed by the storage access control system. Forexample, the system 100 can maintain an index of data present in a setof files that have been backed up.

The search storage data component 150 performs searches of indexedstorage data to identify matching data objects. The provide searchresults component 160 prepares identified matching data objects fordisplay to a user. For example, data objects for which the searchinguser does not have access rights may be removed from the search resultsbefore the results are returned to the user. The apply content securitycomponent 170 applies security to a data object based on the content ofthe data object. For example, if a user has not been granted access todocuments containing the word “confidential,” then the apply contentsecurity component 170 prevents the user from accessing a documentcontaining “confidential.”

FIG. 1 and the following discussion provide a brief, general descriptionof a suitable computing environment in which the invention can beimplemented. Although not required, aspects of the invention aredescribed in the general context of computer-executable instructions,such as routines executed by a general-purpose computer, e.g., a servercomputer, wireless device or personal computer. Those skilled in therelevant art will appreciate that the invention can be practiced withother communications, data processing, or computer systemconfigurations, including: Internet appliances, hand-held devices(including personal digital assistants (PDAs)), wearable computers, allmanner of cellular or mobile phones, multi-processor systems,microprocessor-based or programmable consumer electronics, set-topboxes, network PCs, mini-computers, mainframe computers, and the like.Indeed, the terms “computer,” “host,” and “host computer” are generallyused interchangeably herein, and refer to any of the above devices andsystems, as well as any data processor.

Aspects of the invention can be embodied in a special purpose computeror data processor that is specifically programmed, configured, orconstructed to perform one or more of the computer-executableinstructions explained in detail herein. Aspects of the invention canalso be practiced in distributed computing environments where tasks ormodules are performed by remote processing devices, which are linkedthrough a communications network, such as a Local Area Network (LAN),Wide Area Network (WAN), or the Internet. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Aspects of the invention may be stored or distributed oncomputer-readable media, including magnetically or optically readablecomputer discs, hard-wired or preprogrammed chips (e.g., EEPROMsemiconductor chips), nanotechnology memory, biological memory, or otherdata storage media. Indeed, computer implemented instructions, datastructures, screen displays, and other data under aspects of theinvention may be distributed over the Internet or over other networks(including wireless networks), on a propagated signal on a propagationmedium (e.g., an electromagnetic wave(s), a sound wave, etc.) over aperiod of time, or they may be provided on any analog or digital network(packet switched, circuit switched, or other scheme). Those skilled inthe relevant art will recognize that portions of the invention reside ona server computer, while corresponding portions reside on a clientcomputer such as a mobile or portable device, and thus, while certainhardware platforms are described herein, aspects of the invention areequally applicable to nodes on a network.

FIGS. 2-4 are representative flow diagrams that depict processes used insome embodiments. These flow diagrams do not show all functions orexchanges of data, but instead they provide an understanding of commandsand data exchanged under the system. Those skilled in the relevant artwill recognize that some functions or exchange of commands and data maybe repeated, varied, omitted, or supplemented, and other (lessimportant) aspects not shown may be readily implemented.

FIG. 2 is a flow diagram that illustrates the processing of the systemto apply preexisting security to data objects in one embodiment. Thesesteps are invoked when a storage operation is performed that results indata being moved or copied from a source location to a destinationlocation. In step 210, the system receives a storage operation, such asa request to copy data from a source location to a destination location.In step 220, the system queries the source location for access controlinformation. For example, if the source information is a file, then thestorage access control system queries access control information fromthe file system. In step 230, if the access control informationindicates that the requestor of the storage operation has permission toperform the operation, then the system performs the requested storageoperation. For example, if the operation is a backup, then the systembacks up data from the source location to the destination location. Instep 240, the system applies the access control information to thedestination data objects, such as backup files or folders. Accesscontrol information captured from a file system may be stored asmetadata in a content indexing system that controls access to secondarycopies of the source data. For example, ACLs and ACEs associated withfiles may be stored in the content indexing system or otherwiseassociated with secondary copies of the files. After step 240, thesesteps conclude.

FIG. 3 is a flow diagram that illustrates the processing of the systemto perform a secure search in one embodiment. These steps are invokedwhen a user attempts to search for data objects matching specifiedcriteria. In step 310, the system receives a search query specifying thecriteria (e.g., of the data objects) for which the user is searching.For example, the criteria may contain a file name or the contents of afile that the user is seeking. In step 320, the system searches one ormore data stores or an index of content of the data stores using thereceived query. The system may only search certain data stores based onthe access permitted to the user. The data store may be a destinationlocation where the data objects were copied following a storageoperation, or the data store may contain metadata about the dataobjects, which may be stored elsewhere. In step 330, the systemidentifies matching data object entries in the data store that satisfythe received search criteria. In step 340, the system applies accesscontrol settings to the search results. For example, certain users maynot have access to documents from a certain location or containingcertain keywords. As another example, the access control information maybe used to decrypt an encrypted search result. The system may performthe search in two passes. During the first pass, the system performs acoarse search in which all data stores to which the user has accessedare searched to create a list of search results. During the second pass,a finer grained search of the individual results is performed todetermine which search results the user has access to receive. Searchresults that the user does not have access to receive may be removed orreplaced with a no access indicator (e.g., an icon) before the searchresults are displayed to the user. In step 350, the system provides thesearch results to the querying user. After step 350, these stepsconclude.

FIG. 4 is a flow diagram that illustrates the processing of the systemto migrate users or security information associated with users from apreexisting security infrastructure to a storage application (orcomponent) in one embodiment. These steps are invoked when, for example,an administrator manages storage access control for a storageapplication. In step 410, the system creates a group within the storageapplication. For example, the administrator may create a group of userscalled “Backup Users” that have the necessary access rights to perform abackup of certain data within the system. Alternatively, the system mayimport whole groups from the preexisting security infrastructure andassign access rights to the groups and entities within the groups. Instep 420, the system identifies preexisting users that are external tothe storage application. For example, an administrator may havepreviously defined the users in the Windows Active Directory or inanother external security component.

In step 430, the system adds the external users to the storageapplication group, such that the storage application group containsusers that were not created using the storage application. For example,a user “Bob Jones” created in the Active Directory may be added to agroup “System Administrators” within the storage application. Theexternal users may also be user groups, such that group previouslycreated by the administrator using Windows Active Directory is added tothe storage application group. In step 440, the system applies theaccess control rights of the storage application group to the addedexternal users. The system is more secure than traditional systemsbecause each administrator is not given access to create new userswithin the storage application. By allowing an administrator to addexternal users to the storage application, the system does not need toallow most administrators to have the access rights necessary to createnew users within the storage application. For example, an administratormay only be able to add existing users or groups to the storageapplication. Thus, an administrator of the preexisting security systemcan restrict the entities to which an administrator of the storageapplication can assign rights. Storage system administrators often haveaccess to some of a corporation's most important data, so the ability tocontrol which users can perform storage operations can significantlyenhance data security. After step 440, these steps conclude.

FIG. 5 is a data structure diagram that illustrates access controlinformation metadata that may be stored with storage data in oneembodiment. The data structure 500 contains a security descriptor 510and secondary data 550. The security descriptor 510 contains an accesscontrol list 520 that specifies the entities that have access to thebackup data. The security descriptor 510 may contain multiple accesscontrol lists that define different types of access such as read, write,or execute permissions. The access control list 510 contains accesscontrol entries ACE1 and ACE2 (shown with respective reference numerals530 and 540). Each access control entry refers to a different entity,such as a user, group, resource, or other entity, that has some type ofaccess or lack of access to the secondary data 550. Alternatively oradditionally, the access control entries 530 and 540 may specifydifferent entries that are denied access to the secondary data 550. Thesecurity descriptor 510 may contain other information such as keywordsthat members of the specified access control list have access rights to.For example, the security descriptor 510 may indicate that a particularentity does not have access to documents containing the keyword“confidential.”

CONCLUSION

From the foregoing, it will be appreciated that specific embodiments ofthe storage access control system have been described herein forpurposes of illustration, but that various modifications may be madewithout deviating from the spirit and scope of the invention. Forexample, although certain preexisting security systems have beendescribed, the storage access control system is compatible with anypreexisting security system, such as Linux Kerberos, LightweightDirectory Access Protocol (LDAP)-based systems, and others. Althoughbackups have been described, the storage access control system can beapplied to other storage operations such as migrating data from onesystem to another. Accordingly, the invention is not limited except asby the appended claims.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” The word “coupled”, as generally usedherein, refers to two or more elements that may be either directlyconnected, or connected by way of one or more intermediate elements.Additionally, the words “herein,” “above,” “below,” and words of similarimport, when used in this application, shall refer to this applicationas a whole and not to any particular portions of this application. Wherethe context permits, words in the above Detailed Description using thesingular or plural number may also include the plural or singular numberrespectively. The word “or” in reference to a list of two or more items,that word covers all of the following interpretations of the word: anyof the items in the list, all of the items in the list, and anycombination of the items in the list.

The above detailed description of embodiments of the invention is notintended to be exhaustive or to limit the invention to the precise formdisclosed above. While specific embodiments of, and examples for, theinvention are described above for illustrative purposes, variousequivalent modifications are possible within the scope of the invention,as those skilled in the relevant art will recognize. For example, whileprocesses or blocks are presented in a given order, alternativeembodiments may perform routines having steps, or employ systems havingblocks, in a different order, and some processes or blocks may bedeleted, moved, added, subdivided, combined, and/or modified. Each ofthese processes or blocks may be implemented in a variety of differentways. Also, while processes or blocks are at times shown as beingperformed in series, these processes or blocks may instead be performedin parallel, or may be performed at different times.

The teachings of the invention provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various embodiments described above can be combined toprovide further embodiments.

These and other changes can be made to the invention in light of theabove Detailed Description. While the above description details certainembodiments of the invention and describes the best mode contemplated,no matter how detailed the above appears in text, the invention can bepracticed in many ways. Details of the system may vary considerably inimplementation details, while still being encompassed by the inventiondisclosed herein. As noted above, particular terminology used whendescribing certain features or aspects of the invention should not betaken to imply that the terminology is being redefined herein to berestricted to any specific characteristics, features, or aspects of theinvention with which that terminology is associated. In general, theterms used in the following claims should not be construed to limit theinvention to the specific embodiments disclosed in the specification,unless the above Detailed Description section explicitly defines suchterms. Accordingly, the actual scope of the invention encompasses notonly the disclosed embodiments, but also all equivalent ways ofpracticing or implementing the invention under the claims.

While certain aspects of the invention are presented below in certainclaim forms, the inventors contemplate the various aspects of theinvention in any number of claim forms. For example, while only oneaspect of the invention is recited as embodied in a computer-readablemedium, other aspects may likewise be embodied in a computer-readablemedium. Accordingly, the inventors reserve the right to add additionalclaims after filing the application to pursue such additional claimforms for other aspects of the invention.

1. A method of searching for data objects in a data management system,the method comprising: receiving one or more criteria describing atleast one data object to be located within the data management system;identifying one or more data objects stored within the data managementsystem that satisfy the received one or more criteria; determining oneor more access rights associated with the identified one or more dataobjects stored within the data management system; and providing afiltered list of results that contains the identified one or more dataobjects, wherein the list is filtered based on the determined one ormore access rights.
 2. The method of claim 1 wherein determining one ormore access rights comprises determining access rights based on anidentity of a user from which the one or more criteria are received. 3.The method of claim 1 wherein determining one or more access rightscomprises determining access rights based on an identity of a processfrom which the one or more criteria are received.
 4. The method of claim1 wherein determining one or more access rights comprises determiningaccess rights based on an identity of the identified one or more dataobjects.
 5. The method of claim 1 wherein the identified one or moredata objects include textual content, and wherein determining one ormore access rights comprises determining access rights based on theincluded textual content.
 6. The method of claim 1 wherein providing afiltered list of results comprises removing identified data objects fromthe results to which the one or more access rights do not grant access.7. The method of claim 1 wherein providing a filtered list of resultscomprises providing an indication that access to the results isrestricted to results to which the one or more access rights grantaccess.
 8. The method of claim 1 wherein identifying one or more dataobjects stored within the data management system comprises querying adatabase that maintains an index of data objects stored within the datamanagement system and access control information associated with thedata objects to determine data objects that satisfy the one or morereceived criteria.
 9. The method of claim 1 wherein the access rightsassociated with the identified one or more data objects are based onaccess control information associated with source data used to createthe one or more data objects.
 10. The method of claim 1 wherein the datamanagement system contains multiple copies of certain data objects, andwherein similar access rights are associated with each of the copies ofthe certain data objects.
 11. The method of claim 1 wherein the accessrights of a user from which the one or more criteria are received aredetermined by the membership of the user in one or more Microsoft®Windows Active Directory groups.
 12. A computer-readable mediumcontaining instructions for controlling a computer system to restrictaccess to data objects stored within a storage management system, by amethod comprising: receiving a request identifying a particular copy ofa data object for which access rights are to be determined, wherein thedata object has multiple copies; identifying the entity requestingaccess to the particular copy of the data object; querying accesscontrol information for the particular copy of the data object from thestorage management system, wherein the storage management systemdetermines access control information with each data object when a firstinstance of the data object is encountered and associates the accesscontrol information with each subsequent copy of the data object that iscreated; and, indicating whether the identified entity requesting accessto the data object is granted access to the data object based on theaccess control information associated with the data object by thestorage management system, wherein the indication is the same regardlessof which of the multiple copies of the data object the requestidentifies.
 13. The computer-readable medium of claim 12 whereinidentifying the entity requesting access comprises determining theaccess rights assigned to the entity by a security system.
 14. Thecomputer-readable medium of claim 12 wherein different storageoperations have been performed on each of the copies of the data objecthaving multiple copies.
 15. The computer-readable medium of claim 12wherein storing access control information for each data object when afirst instance of the data object is encountered comprises retrievingaccess control information associated with a file system in which thedata object is stored.
 16. The computer-readable medium of claim 12wherein querying access control information for the particular copy ofthe data object from the storage management system comprises accessingan index that stores information about each copy of the data object andaccess control information associated with the data object.
 17. Thecomputer-readable medium of claim 12 wherein the entity requestingaccess is a member of an external security group and identifying theentity requesting access to the particular copy of the data objectcomprises determining the access rights assigned to members of theexternal security group.
 18. A system for filtering data objectsprovided in response to a search in a data management system based onaccess rights associated with the data objects, the system comprising: anetwork security component that provides access control information fordata objects stored by one or more computers within the data managementsystem, wherein the access control information is based on accesscontrol information associated with source data used to create each dataobject; an entity identification component that identifies an entityrequesting access to a data object stored within the data managementsystem; a storage search component that receives criteria and performssearches for data objects within the data management system that satisfyat least one or the criteria; and a data object access component thatdetermines whether the entity identified by the entity identificationcomponent has access to the data objects discovered by the storagesearch component based on the access control information.
 19. The systemof claim 18 wherein the network security component manages storageoperations associated with data objects and when a storage operationcreates a copy of a data object, migrates access control informationassociated with the source of the data object to the copy of the dataobject.
 20. The system of claim 18, further comprising a web servercomponent that provides access to data objects and the storage searchcomponent through a web browser interface.